package com.ruoyi.iot.domain.entity;

import java.time.LocalDateTime;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

/**
 * 告警统计窗口实体
 */
@Data
@Schema(description = "设备告警统计窗口实体，对应告警统计结果")
public class DeviceAlarmWindow {

    @Schema(description = "主键ID")
    private Long id;

    @Schema(description = "设备编号")
    private String deviceId;

    @Schema(description = "窗口开始时间")
    private LocalDateTime windowStart;

    @Schema(description = "窗口结束时间")
    private LocalDateTime windowEnd;

    @Schema(description = "聚合粒度（分钟）")
    private Integer granularityMinutes;

    @Schema(description = "速断动作次数")
    private Integer quickstrikeSum;

    @Schema(description = "过流保护动作次数")
    private Integer overcurrentSum;

    @Schema(description = "热保护动作次数")
    private Integer thermalSum;

    @Schema(description = "过压动作次数")
    private Integer overpressureSum;

    @Schema(description = "热保护预警次数")
    private Integer heatWarnSum;

    @Schema(description = "零序过流告警次数")
    private Integer zeroAlarmSum;

    @Schema(description = "过负荷预警次数")
    private Integer loadWarnSum;

    @Schema(description = "告警总次数")
    private Integer totalAlarmCount;

    @Schema(description = "故障总次数")
    private Integer totalFaultCount;

    @Schema(description = "监视模块告警次数")
    private Integer monitorModuleAlarmSum;

    @Schema(description = "光强越限告警次数")
    private Integer fiberPowerAlarmSum;

    @Schema(description = "过热保护告警次数")
    private Integer overTemperatureAlarmSum;

    @Schema(description = "过压告警次数")
    private Integer overVoltageAlarmSum;

    @Schema(description = "零序电压告警次数")
    private Integer zeroSeqVoltageAlarmSum;

    @Schema(description = "非电量告警1次数")
    private Integer nonElectrical1AlarmSum;

    @Schema(description = "非电量告警2次数")
    private Integer nonElectrical2AlarmSum;

    @Schema(description = "非电量告警3次数")
    private Integer nonElectrical3AlarmSum;

    @Schema(description = "控制电源故障次数")
    private Integer controlPowerFailSum;

    @Schema(description = "创建时间")
    private LocalDateTime createdAt;

    @Schema(description = "更新时间")
    private LocalDateTime updatedAt;
}
